/**
**************************************************************************************************************************
* RBRefObject's Constructor
**************************************************************************************************************************/
inline RBRefObject::RBRefObject() : 
m_uiRefCount(0)
{
    ++ms_uiNbObjects;
}



/**
**************************************************************************************************************************
* RBRefObject's Destructor
**************************************************************************************************************************/
inline RBRefObject::~RBRefObject()
{
    --ms_uiNbObjects;
}

/**
 **************************************************************************************************************************
 * Increments current ref count
 **************************************************************************************************************************/
inline uint32 RBRefObject::IncRefCount()
{
    return ++m_uiRefCount;
}

/**
**************************************************************************************************************************
* Decrements current ref count
**************************************************************************************************************************/
inline uint32 RBRefObject::DecRefCount()
{
    if ((--m_uiRefCount)==0)
    {
        // Nobody keeps a reference to the object: delete it
        DeleteThis();
        return 0;
    }
    return m_uiRefCount;
}

